package mylab.starters.secure.annotation;

import mylab.starters.secure.support.DefaultSecureExpressionHandler;

import java.lang.annotation.*;

/**
 * <p>
 * 自定义方法、类上鉴权注解，内置的权限表达式 {@link DefaultSecureExpressionHandler} 也可以自定义 Spring Bean 使用 {@code @} 引用
 * </p>
 *
 * @see DefaultSecureExpressionHandler
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Secure {
    /**
     * 权限表达式，内置的权限表达式 {@link DefaultSecureExpressionHandler} 也可以自定义 Spring Bean 使用 {@code @} 引用
     *
     * @return 权限表达式
     * @see DefaultSecureExpressionHandler
     */
    String value();
}
